package com.chalk.model;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 系统权限表(SysPermission)实体类
 *
 * @author maxiaoqiang
 * @since 2019-03-28 17:19:06
 */
@ApiModel(value = "SysPermission", description = "系统权限表")
@Data
@TableName("t_sys_permission")
public class SysPermission {

    /**
     * 权限id
     */
    @ApiModelProperty(name = "permId", value = "权限id")
    @TableId(type = IdType.ID_WORKER_STR)
    private String permId;


    /**
     * 权限名称
     */
    @ApiModelProperty(name = "permName", value = "权限名称")
    @TableField("perm_name")
    private String permName;

    /**
     * 权限点唯一编号
     */
    @ApiModelProperty(name = "permCode", value = "权限点唯一编号")
    @TableField("perm_code")
    private String permCode;

    /**
     * 权限所属的功能模块名称
     */
    @ApiModelProperty(name = "moduleName", value = "权限所属的功能模块名称")
    @TableField("module_name")
    private String moduleName;

    /**
     * 权限类型（0、访问路径url，1、页面标签，默认0）
     */
    @ApiModelProperty(name = "permType", value = "权限类型（0、访问路径url，1、页面标签，默认0）")
    @TableField("perm_type")
    private Integer permType;

    /**
     * 权限资源（当perm_type为0时，此字段为系统某功能的url，当perm_type为1时，此字段为页面标签的编号）
     */
    @ApiModelProperty(name = "permResource", value = "权限资源（当perm_type为0时，此字段为系统某功能的url，当perm_type为1时，此字段为页面标签的编号）")
    @TableField("perm_resource")
    private String permResource;

    /**
     * 备注
     */
    @ApiModelProperty(name = "memo", value = "备注")
    @TableField("memo")
    private String memo;

    /**
     * 是否可用（1、可用，0、不可用，默认1）
     */
    @ApiModelProperty(name = "isAvailable", value = "是否可用（1、可用，0、不可用，默认1）")
    @TableField("is_available")
    private Integer isAvailable;

    /**
     * 权限是否与菜单有关（1、有关，0、无关，且只有perm_type为0才有意义，默认0）
     */
    @ApiModelProperty(name = "isMenu", value = "是否是菜单（1、是，0、不是，且只有perm_type为0才有意义，默认0）")
    @TableField("is_menu")
    private Integer isMenu;

    /**
     * 是否显示在菜单中（1、显示，0、不显示，且仅当is_menu为1时才有效，默认0）
     */
    @ApiModelProperty(name = "isMenuShow", value = "是否显示在菜单中（1、显示，0、不显示，且仅当is_menu为1时才有效，默认0）")
    @TableField("is_menu_show")
    private Integer isMenuShow;

    /**
     * 菜单名称（仅当is_menu为1时有效）
     */
    @ApiModelProperty(name = "menuName", value = "菜单名称（仅当is_menu为1时有效）")
    @TableField("menu_name")
    private String menuName;

    /**
     * 层级，1为最小，一般当is_menu为1时才有意义）
     */
    @ApiModelProperty(name = "level", value = "层级，1为最小，一般当is_menu为1时才有意义）")
    @TableField("level")
    private Integer level;

    /**
     * 父节点id
     */
    @ApiModelProperty(name = "parentId", value = "父节点id")
    @TableField("parent_id")
    private String parentId;

    /**
     * 兄弟结点间的排序顺序，数字小的优先，0为最小值
     */
    @ApiModelProperty(name = "ranking", value = "兄弟结点间的排序顺序，数字小的优先，0为最小值")
    @TableField("ranking")
    private Integer ranking;

    /**
     * 创建时间
     */
    @ApiModelProperty(name = "createTime", value = "创建时间")
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(name = "updateTime", value = "更新时间")
    @TableField("update_time")
    private Date updateTime;

    /**
     * 操作人类型（0、系统自动操作，1、平台人员操作，2、商家人员操作，3、会员操作）
     */
    @ApiModelProperty(name = "operatorType", value = "操作人类型（0、系统自动操作，1、平台人员操作，2、商家人员操作，3、会员操作）")
    @TableField("operator_type")
    private Integer operatorType;

    /**
     * 操作人id（根据操作人类型会对应不同的表记录）
     */
    @ApiModelProperty(name = "operatorId", value = "操作人id（根据操作人类型会对应不同的表记录）")
    @TableField("operator_id")
    private Long operatorId;

    /**
     * 是否已删除（逻辑删除，1、已删除，0、未删除，默认0）
     */
    @ApiModelProperty(name = "isDeleted", value = "是否已删除（逻辑删除，1、已删除，0、未删除，默认0）")
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 权限标识
     */
    @ApiModelProperty(name = "permission", value = "权限标识")
    @TableField("permission")
    private String permission;

}